package info.motteke.qjdbc.operation.select;

import info.motteke.qjdbc.exception.NoEntitiesException;
import info.motteke.qjdbc.exception.TooManyEntitiesException;
import java.util.List;

public interface Execute<E> {

    /**
     * 結果をリストにして返します。
     * @return 結果
     */
    public List<E> asList();

    /**
     * 結果をひとつだけ返します。
     * @return 結果
     * @throws TooManyEntitiesException 結果が二件以上だった場合
     * @throws NoEntitiesException 結果が0件だった場合
     */
    public E asSingle();

    /**
     * 結果をひとつだけ返します。
     * @return 結果。ただし、0件の時はnull。
     * @throws TooManyEntitiesException 結果が二件以上だった場合
     */
    public E asSingleOrNull();
}
